package com.quique.pfc.activities;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.ListView;

import com.quique.pfc.R;
import com.quique.pfc.dtos.ContenidoDto;
import com.quique.pfc.dtos.ElementoDetalleCursoDto;
import com.quique.pfc.utils.adapters.ContenidoCarpetaAdapter;

/** Pantalla que muestra la lista con los archivos contenidos en una carpeta perteneciente
 * al detalle de un curso */
public class VerCarpetaActivity extends Activity
{
	/** Identificador unico en moodle del curso para el cual se va a mostrar el detalle */
	int idCurso;	
	/** Metodo que se invocara al acceder a la pantalla*/
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		
		//Obtiene el elemento correspondiente a la carpeta
		Intent i = getIntent();
		ElementoDetalleCursoDto e = 
				(ElementoDetalleCursoDto)i.getSerializableExtra("elemento");
		
		Bundle extras = getIntent().getExtras();
        idCurso = (extras != null) ? extras.getInt("cursoId") : null;
        
		configurarVista();
		//Obtengo la lista con la que voy a rellenar el Adapter
		ArrayList<ContenidoDto> contenidosCarpeta = new ArrayList<ContenidoDto>();
		for(ContenidoDto c : e.modulo.contents)
		{
			contenidosCarpeta.add(c);
		}
		final ListView lv = (ListView)findViewById(R.id.lista_elementos_carpeta);
		ContenidoCarpetaAdapter cca = new ContenidoCarpetaAdapter(this, R.layout.contenido_carpeta_item, contenidosCarpeta,idCurso);
		cca.idModulo = e.modulo.id;
		cca.modulo = e.modulo;
		lv.setDivider(null);
        lv.setDividerHeight(0);
		lv.setAdapter(cca);
	}
	
	/**
	 * Establece el xml que define la vista y le da comportamiento
	 * al boton volver
	 */
	private void configurarVista()
	{
		super.setContentView(R.layout.ver_carpeta);
		//evitamos que se ponga la pantalla en horizontal
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
		final Button button = (Button) findViewById(R.id.boton_volver_ver_carpeta);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) 
            {
            	//vamos al main_activity
//            	Intent i = new Intent(
//            			VerCarpetaActivity.this,
//            			DetalleCursoActivity.class);
//            	
//            	i.putExtra("cursoId", idCurso);
//            	
//				i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//				i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
//				startActivity(i);
            	onBackPressed();
				
            }
        });
	}
	
	@Override
	public void onBackPressed()
	{
		//vamos al DetalleCurso_activity
    	Intent i = new Intent(
    			VerCarpetaActivity.this,
    			DetalleCursoActivity.class);
    	i.putExtra("cursoId", idCurso);
		i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
		i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
		startActivity(i);
		this.finish();
	}
	
	int rq;
	int rc; 
	Intent d;
	
	public void onActivityResult(int requestCode, int resultCode, Intent data) 
	{
		//El usuario ya ha seleccionado la foto
		//Guardamos los datos que devuelve el activity en atributos de
		//la clase para poder
		//realizar la subida en un thread en segundo plano
		rq = requestCode; rc = resultCode; d = data;
		Log.i("moodle", "El usuario selecciona una foto de su biblioteca");
		//LLamamos al Thread que se encarga de subir una foto al servidor.
		Log.i("moodle", "Se va a llamar al Thread de subida de ficheros al servidor..");
		//new VolverAppTask().execute();
		Log.i("moodle", "Thread invocado: se ejecutara en segundo plano..");
		if(requestCode == KeyEvent.KEYCODE_BACK){
			//venimos de la apertura de un documento, volvemos a DetalleCursoActivity
			Intent i = new Intent(
					VerCarpetaActivity.this,
	    			DetalleCursoActivity.class);
			
			i.putExtra("cursoId", this.idCurso);
			
			i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
			i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
			startActivity(i);
		}
		this.finish();
	}
}
